package com.chixing.service;

import com.alipay.api.domain.Product;
import com.chixing.entity.Hotel;
import com.baomidou.mybatisplus.extension.service.IService;
import com.chixing.entity.VO.HotelSearchVO;
import com.chixing.utils.Result;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author smith
 * @since 2025-09-30
 */
public interface IHotelService  {
    public Result getName(String hotelName);//根据酒店名称模糊查询

    public Result getById(Long hotelId);//根据酒店id查询酒店基本信息
    public Result getByHotelId(Integer hotelId);//根据酒店id查询酒店的详细信息
    //    根据旅点模糊查询  酒店地点包括:省  市  区   街道   然后还需要分页查询
    public Result getHotelsByLocation(String location);
    Result searchHotels(HotelSearchVO vo);

    //获得评分排行榜前五的酒店
    public List<Hotel> getHotHotel();

    //推荐酒店(基于评价 + 用户ID)
    public List<Hotel> getRecommendHotel(Long userId);


    //获得评分排行榜前五的酒店
//    public List<Hotel> getHotHotel();

    /**
     * 将MySQL中Product的数据保存到Elasticsearch
     */
    public void  saveProducts2Elasticsearch();

    /**
     * 根据关键字搜索
     * @param keyword
     * @return
     */
    public List<Hotel> getByKeyword(String keyword);
    /**
     * 分词高亮查询，  分页与根据价格升序排序
     * @param keyword
     * @return
     */
    public List<Hotel> getByKeywordAndPage(String keyword) ;

    public List<Hotel> searchHotelES(HotelSearchVO vo);

}
